﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//求⼀个整数存储在内存中的⼆进制中1的个数。
//方法一：
//int main()
//{
//	int num = 0;
//	int count = 0;
//	scanf("%d", &num);
//	while (num)
//	{
//		if (num % 2 == 1)
//		{
//			count++;
//		}
//		num = num / 2;
//	}
//	printf("二进制中1的个数为%d个\n", count);
//	return 0;
//}

//方法二：
//int main()
//{
//	int num = 0;
//	int i = 0;
//	int count = 0;
//	scanf("%d", &num);
//	for (i = 0; i < 32; i++)
//	{
//		if (num & (1 << i));
//		count++;
//	}
//	printf("二进制中1的个数为%d个\n", count);
//	return 0;
//}

//方法三
int main()
{
	int num = 0;
	int i = 0;
	int count = 0;
	scanf("%d", &num);
	while (num)
	{
		num = num & (num - 1);
		count++;
	}
	printf("二进制中1的个数为%d个\n", count);
	return 0;
}